home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 031-040 / amok37 / skrÄbel / sc_computer-mod-asm.zoo / Skräbel-src / sc_Computer-Mod.ASM / Umlaute_Umgewandelt.ASM < prev    next >
Assembly Source File  |  1990-03-19  |  3KB  |  96 lines

  1. ;(*****************************************************************************
  2. ;
  3. ;  :Program.       Umlaute_Umgewandelt.ASM
  4. ;  :Author.        Georg Brünsing
  5. ;  :Address.       Grechte 2, D-4156 Willich 3
  6. ;  :Phone.         02156/7534
  7. ;  :ShortCut.      gb
  8. ;  :Support.       -
  9. ;  :Version.       1.0
  10. ;  :Date.          20-Feb-89
  11. ;  :Copyright.     PD
  12. ;  :Language.      Assembler
  13. ;  :Translator.    Profimat / DATA BECKER
  14. ;  :Imports.       -
  15. ;  :Update.        -
  16. ;  :History.       -
  17. ;  :ModHistory.    -
  18. ;  :Contents.      Assembler Source für Skräbel
  19. ;  :Remark.        -
  20. ;  :Usage.         -
  21. ;
  22. ;*****************************************************************************)
  23.  
  24.  
  25.  
  26. UmlauteUmgewandelt:
  27. ; Eingang in A0 = UmwWortPtr : ADDRESS
  28. ;         in A1 = VorBuchstPtr : ADDRESS
  29. ;         in A2 = WortLenPtr(CARDINAL) : ADDRESS
  30. ; Ausgang in D0 = True wenn gewandelt wurde
  31. \UmwWortPtr    EQUR A0
  32. \VorBuchstPtr  EQUR A1
  33. \WortLenPtr    EQUR A2
  34. \HilfsPtr      EQUR A3
  35. \Rückgabe      EQUR D0
  36. \UmlChar       EQUR D0
  37. \WortLen       EQUR D1
  38. \Char          EQUR D2
  39. \Diff          EQUR D2
  40.    MOVEQ    #0 , \Rückgabe
  41. \Umlaute_suchen:
  42.    MOVE.B   (\UmwWortPtr)+ , \UmlChar
  43.    BEQ.S    \keine_Umwandlung
  44.    CMPI.B   #"Ü" , \UmlChar
  45.    BEQ.S    \Umlaut_in_Buchst_suchen
  46.    CMPI.B   #"Ä" , \UmlChar
  47.    BEQ.S    \Umlaut_in_Buchst_suchen
  48.    CMPI.B   #"Ö" , \UmlChar
  49.    BNE.S    \Umlaute_suchen
  50. \Umlaut_in_Buchst_suchen:
  51.    MOVEA.L  \VorBuchstPtr , \HilfsPtr
  52. \Umlaut_in_Buchst_suchen_Schleife:
  53.    MOVE.B   (\HilfsPtr)+ , \Char
  54.    BEQ.S    \Umwandeln_Begin
  55.    CMP.B    \Char , \UmlChar
  56.    BNE.S    \Umlaut_in_Buchst_suchen_Schleife
  57.    BRA.S    \Umlaute_suchen
  58. \Umwandeln_Begin:
  59.    MOVEQ    #-1 , \Diff
  60. \Diff_feststellen:
  61.    ADDQ.L   #1 , \Diff
  62.    TST.B    (\UmwWortPtr)+
  63.    BNE.S    \Diff_feststellen
  64.    MOVEA.L  \UmwWortPtr , \HilfsPtr
  65.    ADDQ.L   #1 , \UmwWortPtr
  66. \Copy:
  67.    MOVE.B   -(\HilfsPtr) , -(\UmwWortPtr)
  68.    DBRA     \Diff , \Copy
  69.    SUBQ.L   #2 , \UmwWortPtr
  70.    CMPI.B   #"Ü" , \UmlChar
  71.    BNE.S    \Auf_Ä_prüfen
  72.    MOVE.B   #"U" , (\UmwWortPtr)+
  73.    MOVE.B   #"E" , (\UmwWortPtr)
  74.    BRA.S    \Umgewandelt
  75. \Auf_Ä_prüfen:
  76.    CMPI.B   #"Ä" , \UmlChar
  77.    BNE.S    \Dann_ist_es_Ö
  78.    MOVE.B   #"A" , (\UmwWortPtr)+
  79.    MOVE.B   #"E" , (\UmwWortPtr)
  80.    BRA.S    \Umgewandelt
  81. \Dann_ist_es_Ö:
  82.    CMPI.B   #"Ö" , \UmlChar
  83.    MOVE.B   #"O" , (\UmwWortPtr)+
  84.    MOVE.B   #"E" , (\UmwWortPtr)
  85. \Umgewandelt:
  86.    ADDI.W   #1 , (\WortLenPtr)
  87.    ST       \Rückgabe
  88.    RTS
  89. \keine_Umwandlung:
  90.    SF       \Rückgabe
  91.    RTS
  92.  
  93.    END
  94.  
  95.  
  96.